home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 06 (1983-02)(Softdisk)(Side A).zip / Softdisk Magazette Volume 2, No. 06 (1983-02)(Softdisk)(Side A).do / SOFTDISK.PROG.bas < prev    next >
BASIC Source File  |  1996-12-24  |  7KB  |  183 lines

  1. 2  REM  SOFTDISK.PROG BY DAN TOBIAS
  2. 5  TEXT : HOME 
  3. 10  POKE 1013,76: POKE 1014,0: POKE 1015,3: FOR X1 = 768 TO 818: READ Y1: POKE X1,Y1: NEXT 
  4. 20 D$ =  CHR$(4):OP$ = D$ +"OPEN SOFTDISK.TEXT,L47"
  5. 30 RD$ = D$ +"READ SOFTDISK.TEXT,R"
  6. 35 WR$ = D$ +"WRITE SOFTDISK.TEXT,R"
  7. 40 CL$ = D$ +"CLOSE SOFTDISK.TEXT"
  8. 50  DIM L$(30),L(30)
  9. 60  DIM VL$(500),S%(500),C%(500)
  10. 90  PRINT OP$
  11. 100  PRINT RD$;0: INPUT LF: INPUT VN: &  GET DT$
  12. 110  PRINT D$
  13. 120 RN = 1
  14. 130  GOTO 1000
  15. 200  REM NUMBERINPUT
  16. 210  PRINT D$
  17. 220  INVERSE : PRINT "Q=QUIT  H=HARDCOPY  V=VERBAL  OR 1-"T;
  18. 225  NORMAL 
  19. 230  GET I$
  20. 240  IF I$ = "Q"  THEN 9000
  21. 250  IF I$ = "H"  THEN  GOSUB 5000: RETURN 
  22. 260  IF I$ = "V"  THEN  GOSUB 2000: RETURN 
  23. 270 I =  VAL(I$)
  24. 280  IF (I >T)  OR I <1  OR I < > INT(I)  THEN  PRINT "<CTRL-G>";: GOTO 230
  25. 290 RN = RN(I): RETURN 
  26. 400  REM MINPUT
  27. 410  PRINT D$
  28. 420  INVERSE : PRINT "Q=QUIT  H=HARDCOPY  G=GOBACK  M=MORE ";: NORMAL 
  29. 430  GET I$
  30. 440  IF I$ = "Q"  THEN 9000
  31. 450  IF I$ = "H"  THEN  GOSUB 5000: RETURN 
  32. 460  IF I$ = "G"  THEN RN = 1: RETURN 
  33. 480 RN = RN(1): RETURN 
  34. 600  REM INPUT
  35. 610  HTAB 1
  36. 620 I$ = ""
  37. 630  GET II$
  38. 640  IF II$ =  CHR$(13)  THEN  RETURN 
  39. 650  IF II$ =  CHR$(8)  AND  LEN(I$) = 0  THEN  PRINT "<CTRL-G>";: GOTO 630
  40. 655  IF II$ =  CHR$(8)  THEN  PRINT II$;: CALL  -868: IF  LEN(I$) = 1  THEN I$ = "": GOTO 630
  41. 660  IF II$ =  CHR$(8)  THEN I$ =  LEFT$(I$, LEN(I$) -1): GOTO 630
  42. 665  IF  LEN(I$) >38  THEN  PRINT "<CTRL-G>";: GOTO 630
  43. 667  IF  ASC(II$) <32  THEN  INVERSE : PRINT  CHR$( ASC(II$) +64);: NORMAL 
  44. 670 I$ = I$ +II$: PRINT II$;: GOTO 630
  45. 1000  REM GET PAGE 
  46. 1005 NN = RN
  47. 1010  PRINT RD$;NN
  48. 1020  &  GET T$
  49. 1023  IF T$ < >"D"  THEN 1200
  50. 1026  &  GET T$
  51. 1030  IF T$ = "H"  THEN  HOME : INVERSE : PRINT "SOFTDISK MAGAZETTE - ";DT$;" - FRAME ";RN: NORMAL : PRINT 
  52. 1035  IF T$ = "H"  THEN NL = 0
  53. 1040  &  GET T$
  54. 1050 T =  VAL(T$)
  55. 1060  &  GET T$: PRINT T$
  56. 1065 NL = NL +1:L$(NL) = T$
  57. 1067 L(NL) = T
  58. 1070  IF T >0  THEN  PRINT :T = T -1: GOTO 1070
  59. 1075  PRINT D$
  60. 1080 NN = NN +1: GOTO 1010
  61. 1200  REM  END OF PAGE
  62. 1220  &  GET T1$: INPUT FV: &  GET T$
  63. 1240 T =  VAL(T$)
  64. 1250  FOR A = 1 TO T: &  GET A$:RN(A) =  VAL(A$)
  65. 1256  NEXT 
  66. 1260  IF T = 1  THEN  GOSUB 400: GOTO 1300
  67. 1270  GOSUB 200
  68. 1300  REM  CONTINUE
  69. 1305  PRINT 
  70. 1310  GOTO 1000
  71. 2000  REM VERBAL
  72. 2010  HOME : PRINT 
  73. 2015 N = 1
  74. 2017 V = FV
  75. 2018  IF V = 0  THEN N = 0: GOTO 2100
  76. 2020  PRINT RD$;V
  77. 2030  INPUT NA: &  GET VL$(N)
  78. 2040 S%(N) = V:C%(N) = 0
  79. 2050  IF NA = 0  THEN 2100
  80. 2060 N = N +1:V = NA: GOTO 2020
  81. 2100  REM  FINISHED READING
  82. 2105  PRINT D$
  83. 2120  VTAB 21: INVERSE : PRINT "ARROWS MOVE CURSOR.  I=INSERT, D=DELETE,C=CHANGE, G=GO BACK, H=HARDCOPY         ";: NORMAL 
  84. 2130  POKE 35,20: HOME : PRINT 
  85. 2135  IF N = 0  THEN A = 0:TA = 1: GOTO 2150
  86. 2140 A = 1:TA = 1:AA = 1: GOSUB 3000
  87. 2150  REM 
  88. 2155  HTAB 40: PRINT "*"; CHR$(8);: GET I$: PRINT " "; CHR$(8);
  89. 2160 OA = A
  90. 2165  IF N = 0  THEN 2250
  91. 2170  IF I$ =  CHR$(8)  THEN A = A -1
  92. 2180  IF I$ =  CHR$(21)  THEN A = A +1
  93. 2190  IF A <1  OR A >N  THEN A = OA: PRINT "<CTRL-G>";: GOTO 2150
  94. 2200  IF (A <TA)  THEN TA = TA -18:AA = TA:A2 = A:A = TA: GOSUB 3000:A = A2: VTAB 2 +(A -TA): GOTO 2150
  95. 2210  IF (A <OA)  THEN  VTAB  PEEK(37): GOTO 2150
  96. 2220  IF (A >OA)  THEN  PRINT : IF  PEEK(37) = 19  THEN TA = A:AA = A: GOSUB 3000: GOTO 2150
  97. 2230  IF (A < >OA)  THEN 2150
  98. 2240  IF I$ = "C"  THEN  GOSUB 2300: GOTO 2150
  99. 2250  IF I$ = "I"  THEN  GOSUB 2500: GOTO 2150
  100. 2255  IF N = 0  THEN 2270
  101. 2260  IF I$ = "D"  THEN  GOSUB 2700: GOTO 2150
  102. 2270  IF I$ = "G"  THEN 2900
  103. 2275  IF I$ = "H"  THEN  GOSUB 2800:A2 = A:A = TA:AA = A: GOSUB 3000:A = A2: VTAB 2 +(A -TA): GOTO 2150
  104. 2280  PRINT "<CTRL-G>";: GOTO 2150
  105. 2300  REM  CHANGE
  106. 2310  HTAB 1: CALL  -868
  107. 2320  GOSUB 600
  108. 2330  IF I$ = ""  THEN  HTAB 1: PRINT VL$(A);: RETURN 
  109. 2340 VL$(A) = I$:C%(A) = 1: RETURN 
  110. 2500  REM  INSERT
  111. 2502  IF N = 0  THEN A = 2: GOTO 2540
  112. 2504  IF N > = 500  THEN  PRINT "<CTRL-G>";: RETURN 
  113. 2505 AA = A +1:A = A +2
  114. 2510  IF A -TA <18  THEN  GOSUB 3000: GOTO 2540
  115. 2520  IF A -TA = 18  THEN  PRINT : GOTO 2540
  116. 2530 TA = A -1: GOSUB 3000
  117. 2540 A = A -1: HTAB 1: VTAB 2 +(A -TA): CALL  -868
  118. 2550  GOSUB 600
  119. 2560  IF I$ = ""  THEN  HTAB 1: CALL  -868: GOSUB 3900: RETURN 
  120. 2570  IF A >N  THEN N = N +1:C%(A) = 1:C%(A -1) = 1:S%(A) = 0:VL$(A) = I$: GOTO 2500
  121. 2580  FOR B = N TO A  STEP  -1:VL$(B +1) = VL$(B):S%(B +1) = S%(B):C%(B +1) = C%(B): NEXT 
  122. 2585 N = N +1
  123. 2590 VL$(A) = I$:S%(A) = 0:C%(A) = 1:C%(A -1) = 1: GOTO 2500
  124. 2700  REM  DELETE
  125. 2702  IF S%(N) = VN  THEN VN = VN -1
  126. 2705  IF N = 1  THEN N = 0: HOME : PRINT : RETURN 
  127. 2710  IF A = N  THEN N = N -1:A = A -1:C%(A) = 1: HTAB 1: CALL  -868: VTAB  PEEK(37): IF (A <TA)  THEN TA = TA -18:A2 = A:A = TA:AA = A: GOSUB 3000:A = A2: VTAB 2 +(A -TA)
  128. 2720  IF A = N  THEN  RETURN 
  129. 2730  FOR B = A TO N -1:VL$(B) = VL$(B +1):S%(B) = S%(B +1):C%(B) = C%(B +1): NEXT 
  130. 2740 N = N -1:C%(A -1) = 1:AA = A: GOSUB 3000: RETURN 
  131. 2800  REM  HARDCOPY
  132. 2805  HOME 
  133. 2807  PRINT 
  134. 2810  PRINT D$"PR#1"
  135. 2815  PRINT : PRINT "SOFTDISK MAGAZETTE - ";DT$;" - PAGE ";RN;" - VERBAL RESPONSE": PRINT 
  136. 2820  FOR B = 1 TO N
  137. 2830  PRINT VL$(B): NEXT B
  138. 2835  PRINT : PRINT D$"PR#0"
  139. 2840  RETURN 
  140. 2900  REM  GO BACK
  141. 2902  PRINT :S%(N +1) = 0
  142. 2905  IF N = 0  THEN 2940
  143. 2907  FOR A = 1 TO N: IF S%(A) = 0  THEN VN = VN +1:S%(A) = VN
  144. 2908  NEXT A
  145. 2910  FOR A = 1 TO N
  146. 2920  IF C%(A) = 1  THEN  PRINT WR$;S%(A): PRINT S%(A +1): PRINT VL$(A): PRINT D$
  147. 2930  NEXT A
  148. 2940  PRINT WR$;NN
  149. 2950  PRINT "R": PRINT T1$: PRINT S%(1): PRINT T$
  150. 2960  IF T$ = "Y"  THEN  PRINT RN(1): PRINT RN(2): GOTO 2990
  151. 2970  IF T$ = "V"  THEN  PRINT RN(1): GOTO 2990
  152. 2980  FOR A = 1 TO T: PRINT RN(A): NEXT 
  153. 2990  PRINT WR$;0: PRINT LF: PRINT VN: PRINT DT$: PRINT D$: PRINT CL$: PRINT OP$: TEXT : HOME : RETURN 
  154. 3000  REM DISPLAYLINES
  155. 3010  VTAB 2 +(A -TA)
  156. 3015  HTAB 1: CALL  -958
  157. 3017 A1 = AA
  158. 3020  IF  PEEK(37) = 19  OR A1 >N  THEN  VTAB 2 +(A -TA): RETURN 
  159. 3030  PRINT VL$(A1):A1 = A1 +1: GOTO 3020
  160. 3900  REM  REPLACE LINES
  161. 3910 A = A -1:AA = A
  162. 3920  IF (A > = TA)  THEN  GOSUB 3000: RETURN 
  163. 3925 A2 = A:TA = TA -18:A = TA:AA = TA
  164. 3927  IF TA <1  THEN TA = 1:A = 1:AA = 1
  165. 3930  GOSUB 3000:A = A2: VTAB 2 +(A -TA): RETURN 
  166. 5000  REM PRINTOUT
  167. 5010  HOME : PRINT : PRINT D$"PR#1"
  168. 5015  PRINT "SOFTDISK MAGAZETTE - "DT$" - FRAME "RN
  169. 5017  PRINT 
  170. 5020  FOR A = 1 TO NL
  171. 5030  PRINT L$(A)
  172. 5033 TT = L(A)
  173. 5036  IF TT >0  THEN  PRINT :TT = TT -1: GOTO 5036
  174. 5038  NEXT 
  175. 5040  PRINT 
  176. 5060  IF T = 1  THEN  PRINT "Q=QUIT  H=HARDCOPY  G=GOBACK  M=MORE": GOTO 5080
  177. 5070  PRINT "Q=QUIT  H=HARDCOPY  V=VERBAL  OR 1-"T
  178. 5080  PRINT D$"PR#0": RETURN 
  179. 9000  REM QUIT
  180. 9005  PRINT 
  181. 9007  PRINT CL$
  182. 9010  HOME : PRINT D$"RUN KICK.IT.OFF"
  183. 15000  DATA 201,190,240,3,76,201,222,32,177,0,32,227,223,32,44,213,232,189,0,2,208,250,134,157,138,32,82,228,160,0,145,131,200,165,113,145,131,200,165,114,145,131,160,2,162,0,165,157,76,226,229